package main

import "fmt"

func maxSubArray(nums []int) int {
	size := len(nums)
	if size == 0 {
		return 0
	}
	endIMax := nums[0]
	res := nums[0]
	for i := 1; i < size; i++ {
		if nums[i] < endIMax+nums[i] {
			endIMax = endIMax + nums[i]
		} else {
			endIMax = nums[i]
			fmt.Println(endIMax)
		}
		if res < endIMax {
			res = endIMax
		}
	}
	return res
}
func main() {
	var num = []int{-2, 1, -3, 4, -1, 2, 1, -5, 4}
	maxSubArray(num)
}
